﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using QuanLyHocPhi.Model;

namespace QuanLyHocPhi.BLL
{
    class BizChuyenNganh
    {
        internal static Nganh GetNganhByMaNganh(string maNganh)
        {
            using (var context = new QLHPEntities())
            {
                return context.NganhDbSet.FirstOrDefault(e => e.MaNganh == maNganh);
            }
        }

        internal static List<Nganh> GetList()
        {
            using (var context = new QLHPEntities())
            {
                return context.NganhDbSet.ToList();
            }
        }

        internal static bool DeleteChuyenNganh(string maNganh)
        {
            try
            {
                using (var context = new QLHPEntities())
                {
                    var nganh = context.NganhDbSet.FirstOrDefault(e => e.MaNganh == maNganh);
                    var listLopChuyenNganh = context.LopChuyenNganhDbSet.Where(e => e.MaChuyenNganh == maNganh);
                    if (listLopChuyenNganh.Count() > 0)
                        return false;
                    context.NganhDbSet.Remove(nganh);
                    context.SaveChanges();
                    return true;
                }
            }
            catch
            {
                return false;
            }
        }

        internal static void AddNewChuyenNganh(Nganh nganh)
        {
            try
            {
                using (var context = new QLHPEntities())
                {
                    context.NganhDbSet.Add(nganh);
                    context.SaveChanges();
                }
            }
            catch
            {
            }
        }

        internal static void UpdateChuyenNganh(Nganh nganh)
        {
            try
            {
                using (var context = new QLHPEntities())
                {
                    var tempNganh = context.NganhDbSet.FirstOrDefault(e => e.MaNganh == nganh.MaNganh);
                    tempNganh.TenNganh = nganh.TenNganh;
                    context.SaveChanges();
                }
            }
            catch
            {

            }
        }

        internal static Nganh GetNganhByTenNganh(string tenNganh)
        {
            using (var context = new QLHPEntities())
            {
                return context.NganhDbSet.FirstOrDefault(e => e.TenNganh == tenNganh);
            }
        }

        /// <summary>
        /// Lấy danh sách các năm tuyển sinh của một chuyên ngành
        /// </summary>
        /// <param name="maNganh"></param>
        /// <returns></returns>
        internal static IList<string> GetList_NamTuyenSinh(string maNganh)
        {
            using (var context = new QLHPEntities())
            {
                //var query = from sv in context.SinhVienDbSet
                //            where sv.MaLoai == SinhVien.MaLoai_Chuyen &&
                //            sv.C_MaNganh == maNganh
                //            group sv by sv.C_NamTuyenSinh into groupNamTuyenSinh
                //            select new { NamTuyenSinh = groupNamTuyenSinh.Key };
                //var lstNamTuyenSinh = new List<string>();
                //foreach (var group in query)
                //    lstNamTuyenSinh.Add(group.NamTuyenSinh.ToString());
                //lstNamTuyenSinh.Sort();
                //return lstNamTuyenSinh;
                return null;
            }
        }
    }
}
